package com.java214.array.queue;

/**
 * @program: JavaData
 * @ClassName MyQueue
 * @description: 队列特点：先进先出，后进后出
 * @author: tyf19970214
 * @create: 2021-05-07 00:38
 * @Version 1.0
 **/
public class MyQueue {
    //底层使用数组实现
    private long[] arr;

    //有效数据的大小
    private int elements;
    //队头
    private int front;

    //队尾
    private int end;

    /**
     * 默认构造函数
     */
    public MyQueue(){
        arr=new long[10];
        elements=0;
        front=0;
        end=-1;
    }

    /**
     *
     * 带参函数,参数为数组的大小
     */
    public MyQueue(int maxsize){
        arr=new long[maxsize];
        elements=0;
        front=0;
        end=-1;
    }

    /**
     * 添加数据，从队尾插入
     */
    public void insert(long value){
        arr[++end]=value;
        elements++;
    }

    /**
     * 删除数据，从队头删除
     */
    public long delete(){
        elements--;
        return arr[front++];
    }

    /**
     * 查看数据,从队头查看
     */
    public long see(){
        return arr[front];
    }

    /**
     * 判断是否为空
     */
    public boolean isEmpty(){
        return  elements==0;
    }

    /**
     * 判断是否满了
     */
    public boolean isFull(){
        return elements==arr.length;
    }

}
